// fs（file system）模块专门用来操作文件的
const fs = require("fs");
// 接下来就可以使用 fs 这个变量去操作文件了
const path = require("path");


// 1. 异步读取文件信息
// 第一个参数是路径
// utf-8是保证读出来的内容不会乱码
// 第三个参数是一个错误优先的回调函数
// fs.readFile("../01-使用自己的包/index.js", "utf-8", (err, data) => {
//   if (err) throw err;
//   console.log(data + "1");
// })



// 2. 同步读取文件内容
// 同步方法是没有回调函数的，所以有一个返回值
// 同步的方法看起来简单，尽可能不要用，不好处理错误，会阻塞下面代码的运行
// try {
//   const data = fs.readFileSync("../01-使用自己的包/index.js", "utf8");
//   console.log(data + "2");
// } catch (error) {
//   throw error;
// }



// const { readFile } = require("./utils");
// readFile("../01-使用自己的包/index.js").then(data => {
//   console.log(data);
// }).catch((err) => {
//   throw err
// })





// 3. 异步写入文件
// 路径，内容，回调函数
// for (let i = 0; i <= 10; i++) {
//   fs.writeFile(path.resolve(__dirname, `./files/${i + 1}.txt`), `我是要写入的内容${i + 1}`, (err) => {
//     if (err) throw err;
//     console.log(`${i}写入完成`);
//   });
// }


// const obj = require("./utils");
// obj.writeFile(path.resolve(__dirname, `./files/1111.txt`), "我是内容").then(() => {
//   console.log("添加成功");
// })






// 4. 移动和重命名文件
// 目标文件的路径   需要重命名或者移动的路径   回调函数
// fs.rename("./12.txt", "./files/12.txt", (err) => {
//   if (err) throw err;
//   console.log("修改成功");
// })




// 5. 删除文件
// 目标文件的路径   回调函数
// fs.unlink("./files/1.txt", (err) => {
//   if (err) throw err;
//   console.log("删除成功");
// })




// 6. 新建文件夹
// 目标文件夹的路径  回调函数
// fs.mkdir("./files2", (err) => {
//   if (err) throw err;
//   console.log("files2新建成功");
// })



// 7. 读取文件夹
// fs.readdir("./files", (err, data) => {
//   if (err) throw err;
//   console.log(data);
// })


// 8. 删除文件夹
// { recursive: true }表示递归删除
// fs.rmdir("./files", { recursive: true }, (err) => {
//   if (err) throw err;
//   console.log("删除成功");
// })